package projet.sax;

import java.util.ArrayList;
import java.util.HashMap;

import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

import projet.objetsmetier.Produit;

/**
 * Cette classe permet la lecture d'un catalogue au format XML.
 * 
 * @author Maxime GOUFFE, Olivia GUIDEZ
 * 
 */
public class CatalogueSAX extends DefaultHandler {
	private String texte;

	/* private String idProduit,nomProduit,stock,prixUnitairedevise; */
	private HashMap<String, ArrayList<Produit>> catalogue;

	private String nomEntreprise;
	private ArrayList<Produit> lProduit;
	private Produit produit;

	public void characters(char[] arg0, int arg1, int arg2) throws SAXException {
		texte = new String(arg0, arg1, arg2);
	}

	public void endElement(String arg0, String arg1, String arg2)
			throws SAXException {
		if ("produit".equals(arg2)) {
			lProduit.add(produit);
		} else if ("nomEntreprise".equals(arg2)) {
			nomEntreprise = texte;
		} else if ("idProduit".equals(arg2)) {
			produit.setIdProduit(texte);
		} else if ("nomProduit".equals(arg2)) {
			produit.setNomProduit(texte);
		} else if ("stock".equals(arg2)) {
			produit.setStock(Integer.parseInt(texte));
		} else if ("prixUnitaire".equals(arg2)) {
			produit.setPrixUnitaire(Double.parseDouble(texte));
		} else if ("minimumCommande".equals(arg2)) {
			produit.setMinimumCommande(Double.parseDouble(texte));
		} else if ("entreprise".equals(arg2)) {
			getCatalogue().put(nomEntreprise, lProduit);
		}
	}

	public void startElement(String arg0, String arg1, String arg2,
			Attributes arg3) throws SAXException {
		if (arg2.equals("catalogue")) {
			setCatalogue(new HashMap<String, ArrayList<Produit>>());
		}
		if (arg2.equals("entreprise")) {
			lProduit = new ArrayList<Produit>();
		}
		if (arg2.equals("produit")) {
			produit = new Produit();
		}
		if (arg2.equals("prixUnitaire")) {
			produit.setDevise(arg3.getValue(0));

		}

	}

	public HashMap<String, ArrayList<Produit>> getCatalogue() {
		return catalogue;
	}

	public void setCatalogue(HashMap<String, ArrayList<Produit>> catalogue) {
		this.catalogue = catalogue;
	}

}